package co.inventario.modelo.negocio;

import java.sql.Connection;
import java.sql.SQLException;
import java.util.ArrayList;

import co.inventario.datos.sqlserver.ZonaDAOSQLServer;
import co.inventario.datos.sqlserver.CiudadDAOSQLServer;
import co.inventario.entidad.ZonaDTO;
import co.inventario.entidad.CiudadDTO;

public class ZonaNegocio {
	
	public void crear(ZonaDTO zonaDTO, Connection connection) throws Exception, SQLException {
		ZonaDAOSQLServer zonaDAOSQLServer = new ZonaDAOSQLServer();
		ZonaDTO zonaDTOConsultado = zonaDAOSQLServer.consultarPorNombre(zonaDTO, connection);
		if (zonaDTOConsultado == null) {
			zonaDAOSQLServer.crear(zonaDTO, connection);
		} else {
			throw new Exception("La zona que intenta crear, ya existe.");
		}
	}
	
	public void actualizar(ZonaDTO zonaDTO, Connection connection) throws Exception, SQLException {
		ZonaDAOSQLServer zonaDAOSQLServer = new ZonaDAOSQLServer();
		ZonaDTO zonaDTOConsultado = zonaDAOSQLServer.consultarPorCodigo(zonaDTO, connection);
		if (zonaDTOConsultado != null) {
			zonaDAOSQLServer.actualizar(zonaDTO, connection);
		} else {
			throw new Exception("La zona que intenta actualizar, no existe.");
		}
	}

	public ZonaDTO consultarPorCodigo(ZonaDTO zonaDTO, Connection connection) throws Exception, SQLException {
		ZonaDAOSQLServer zonaDAOSQLServer = new ZonaDAOSQLServer();
		ZonaDTO zonaDTOConsultado = zonaDAOSQLServer.consultarPorCodigo(zonaDTO, connection);
		return zonaDTOConsultado;
	}

	public ArrayList<ZonaDTO> consultarTodo(Connection connection) throws Exception, SQLException {
		ZonaDAOSQLServer zonaDAOSQLServer = new ZonaDAOSQLServer();
		ArrayList<ZonaDTO> zonaDTOLista = zonaDAOSQLServer.consultarTodo(connection);
		CiudadDAOSQLServer ciudadDAOSQLServer = new CiudadDAOSQLServer();
		CiudadDTO ciudadDTO = null;
		for (ZonaDTO zonaDTO : zonaDTOLista) {
			ciudadDTO = ciudadDAOSQLServer.consultarPorCodigo(zonaDTO.getCiudadDTO(), connection);
			zonaDTO.setCiudadDTO(ciudadDTO);
		}
		return zonaDTOLista;
	}
}
